/**
 * Copyright(c) 2010 Ceno Techonologies Co., Ltd.
 *
 * History:
 *   15-10-28 下午7:13 Created by lyyang
 */
package com.jade.bss.weixin.impl;

import java.util.List;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.jade.bss.weixin.WeixinApp;
import com.jade.bss.weixin.WeixinAppDao;
import com.jade.framework.base.criterion.Criteria;
import com.jade.framework.base.criterion.sql.SqlUtils;
import com.jade.framework.base.util.PagingList;

@Named ("bss_weixinAppDao")
public class JpaWeixinAppDao implements WeixinAppDao
{
    @PersistenceContext (unitName = "default")
    private EntityManager entityManager;

    public long add(WeixinApp weixinApp)
    {
        entityManager.persist(weixinApp);
        return weixinApp.getCustomerId();
    }

    public void update(WeixinApp weixinApp)
    {
        entityManager.merge(weixinApp);
    }

    public void remove(WeixinApp weixinApp)
    {
        entityManager.remove(weixinApp);
    }

    public WeixinApp get(long customerId)
    {
        return entityManager.find(WeixinApp.class, customerId);
    }

    public PagingList<WeixinApp> query(Criteria criteria)
    {
        String sql = "SELECT weixinApp FROM WeixinApp weixinApp";
        return SqlUtils.sqlQuery(sql, entityManager, criteria);
    }

    public List<WeixinApp> list(Criteria criteria)
    {
        String sql = "SELECT weixinApp FROM WeixinApp weixinApp";
        return SqlUtils.sqlQueryWithoutCount(sql, entityManager, criteria);
    }
}